home *** CD-ROM | disk | FTP | other *** search
/ CICA 1993 April / CICA MS Windows - April 1993.iso / unzipped / programr / printerh / printer.h
C/C++ Source or Header  |  1988-02-23  |  7KB  |  218 lines

  1. /*  printer.h
  2.     contains the definitions of the functions in _SORT,
  3.        _BRUTE, _SPOOL.
  4. */
  5.  
  6.  
  7. #define PASCAL
  8. #define LONG        long
  9. #define NULL        0
  10. #define TRUE        1
  11. #define FALSE       0
  12. #define ERROR       (-1)
  13. #define FAR  far
  14. #define NEAR near
  15. #define VOID void
  16. #define REGISTER    register
  17.  
  18.  
  19. /* file IO flags */
  20.  
  21. #define O_RDONLY        0x0000
  22. #define O_WRONLY        0x0001
  23. #define O_RDWR          0x0002
  24. #define O_APPEND        0x0008  /* writes done at eof */
  25.  
  26. #define         OF_REOPEN       0x8000
  27. #define         OF_EXIST        0x4000
  28. #define         OF_PROMPT       0x2000
  29. #define         OF_CREATE       0x1000
  30. #define         OF_CANCEL       0x0800
  31. #define         OF_VERIFY       0x0400
  32. #define         OF_DELETE       0x0200
  33.  
  34. #define O_TEXT          0x4000  /* file mode is text (translated) */
  35. #define O_BINARY        0x8000  /* file mode is binary (untranslated) */
  36.  
  37. #define SP_CREATE       O_WRONLY | OF_CREATE
  38. #define SP_OPEN         O_RDONLY | OF_EXIST
  39. #define SP_REOPEN       O_RDWR | OF_REOPEN | OF_PROMPT | OF_CANCEL
  40.  
  41. typedef int (FAR * FARPROC)();
  42. typedef int (NEAR * NEARPROC)();
  43. typedef unsigned LONG     DWORD;
  44. typedef DWORD (FAR * DWORDFARPROC)();
  45. typedef unsigned short int WORD;
  46. typedef unsigned char      BYTE;
  47. typedef WORD HANDLE;
  48. typedef HANDLE HWND;
  49. typedef HANDLE HDC;
  50. typedef WORD ATOM;
  51. typedef int  BOOLEAN;
  52. typedef char *NEARP;
  53. typedef char FAR *FARP;
  54. typedef HANDLE GLOBALHANDLE;
  55. typedef HANDLE LOCALHANDLE;
  56. typedef unsigned char     *PSTR;
  57. typedef unsigned char far *LPSTR;
  58. typedef short     BOOL;
  59. typedef long FAR *LPLONG;
  60.  
  61. #define MAX(a,b)        ((a)>(b)?(a):(b))
  62. #define MIN(a,b)        ((a)<=(b)?(a):(b))
  63. #define ABS(x)          (((x) >= 0) ? (x) : (-(x)))
  64. #define LWORD(x)        ((short)((x)&0xFFFF))
  65. #define HWORD(y)        ((short)(((y)>>16)&0xFFFF))
  66. #define MAKELONG(h,l)  ((long)(((WORD)l)|(((long)h)<<16)))
  67. #define LOBYTE(w)       ((BYTE)w)
  68. #define HIBYTE(w)       (((WORD)w >> 8) & 0xff)
  69. #define MAKEPOINT(l)    (*((POINT *)&l))
  70.  
  71. /* Interface to global memory manager */
  72.  
  73. #define GMEM_SHAREALL       0x2000
  74. #define GMEM_FIXED          0x00
  75. #define GMEM_MOVEABLE       0x02
  76. #define GMEM_ZEROINIT       0x40
  77. #define GMEM_DISCARDABLE    0x0F00
  78. #define GHND    (GMEM_MOVEABLE | GMEM_ZEROINIT)
  79. #define GPTR    (GMEM_FIXED    | GMEM_ZEROINIT)
  80.  
  81. /* Interface to local memory manager */
  82.  
  83. #define LMEM_FIXED          0x0000
  84. #define LMEM_MOVEABLE       0x0002
  85. #define LMEM_NOCOMPACT      0x0010
  86. #define LMEM_NODISCARD      0x0020
  87. #define LMEM_ZEROINIT       0x0040
  88. #define LMEM_MODIFY         0x0080
  89. #define LMEM_DISCARDABLE    0x0F00
  90.  
  91. /* Exported procedures for KERNEL module */
  92.  
  93. /* Spooler escapes      */
  94. #define SE_JOBTIME          0x0001  /* time out for printer     */
  95. #define SE_SETCALLBACK      0x0002  /* set callback function    */
  96. #define SE_MARKCALLBACK     0x0003  /* write mark for call back */
  97.  
  98.  
  99. /* Exported procedures for KERNEL module */
  100. VOID          far PASCAL FatalExit( int );
  101.  
  102. HANDLE        far PASCAL LoadModule(LPSTR, LPSTR);
  103. VOID          far PASCAL FreeModule(HANDLE);
  104. HANDLE        far PASCAL GetModuleHandle(FARP);
  105. FARPROC       far PASCAL GetProcAddress(HANDLE, FARP);
  106.  
  107. HANDLE far PASCAL GlobalAlloc( WORD, DWORD );
  108. HANDLE far PASCAL GlobalReAlloc( HANDLE, DWORD, WORD );
  109. HANDLE far PASCAL GlobalFree( HANDLE );
  110. FARP   far PASCAL GlobalLock( HANDLE );
  111. BOOL   far PASCAL GlobalUnlock( HANDLE );
  112. LONG   far PASCAL GlobalSize( HANDLE );
  113. LONG   far PASCAL GlobalFlags( HANDLE );
  114.  
  115. /* task scheduler routines */
  116.  
  117. extern void          far PASCAL Yield(void);
  118. extern BOOL          far PASCAL WaitEvent(HANDLE);
  119. extern BOOL          far PASCAL PostEvent(HANDLE);
  120. extern HANDLE        far PASCAL GetCurrentTask(void);
  121.  
  122. short       FAR PASCAL GetProfileString(LPSTR,  LPSTR,  LPSTR,  LPSTR,  short);
  123. BOOL FAR PASCAL WriteProfileString( LPSTR, LPSTR, LPSTR );
  124.  
  125. /* Interface to the resource manager */
  126.  
  127. HANDLE      FAR PASCAL FindResource( HANDLE, LPSTR, LPSTR );
  128. HANDLE      FAR PASCAL LoadResource( HANDLE, HANDLE );
  129. BOOL        FAR PASCAL FreeResource( HANDLE );
  130.  
  131. char FAR *  FAR PASCAL LockResource( HANDLE );
  132.  
  133. FARPROC     FAR PASCAL SetResourceHandler( HANDLE, LPSTR, FARPROC );
  134. HANDLE      FAR PASCAL AllocResource( HANDLE, HANDLE, DWORD );
  135. WORD        FAR PASCAL SizeofResource( HANDLE, HANDLE );
  136. int         FAR PASCAL AccessResource( HANDLE, HANDLE );
  137.  
  138.  
  139. #define WM_INITDIALOG       0x0110
  140. #define WM_COMMAND          0x0111
  141. #define WM_ENDDIALOG        0x0088
  142. #define WM_SPOOLERSTATUS    0x002a
  143. #define PR_JOBSTATUS        0x0000
  144.  
  145. typedef struct
  146. {
  147.         BYTE    cBytes;                 /* length of structure */
  148.         BYTE    fFixedDisk;             /* non-zero if file located on non- */
  149.                                         /* removeable media */
  150.         WORD    nErrCode;               /* DOS error code if OpenFile fails */
  151.         BYTE    reserved[ 4 ];
  152.         BYTE    szPathName[ 128 ];
  153. } OFSTRUCT;
  154.  
  155. typedef OFSTRUCT FAR * LPOFSTRUCT;
  156.  
  157. int         FAR PASCAL OpenFile( LPSTR, LPOFSTRUCT, WORD );
  158. BYTE        FAR PASCAL GetTempDrive( BYTE );
  159. int         far PASCAL OpenPathname( LPSTR, int );
  160. int         far PASCAL DeletePathname( LPSTR );
  161. int         far PASCAL _lopen( LPSTR, int );
  162. void        far PASCAL _lclose( int );
  163. int         far PASCAL _lcreat( LPSTR, int );
  164. BOOL        far PASCAL _ldelete( LPSTR );
  165. WORD        far PASCAL _ldup( int );
  166. LONG        far PASCAL _llseek( int, long, int );
  167. WORD        far PASCAL _lread( int, LPSTR, int );
  168. WORD        far PASCAL _lwrite( int, LPSTR, int );
  169.  
  170. int         far PASCAL lstrcmp( LPSTR, LPSTR );
  171. LPSTR       far PASCAL lstrcpy( LPSTR, LPSTR );
  172. LPSTR       far PASCAL lstrcat( LPSTR, LPSTR );
  173. int         far PASCAL lstrlen( LPSTR );
  174. LPSTR       far PASCAL lstrbscan( LPSTR, LPSTR );
  175. LPSTR       far PASCAL lstrbskip( LPSTR, LPSTR );
  176.  
  177. /*  GDI internal routines */
  178.  
  179. short FAR PASCAL SetEnvironment(LPSTR, LPSTR, WORD);
  180. short FAR PASCAL GetEnvironment(LPSTR, LPSTR, WORD);
  181.  
  182. /*  _SORT export routines */
  183.  
  184. HANDLE FAR  PASCAL CreatePQ(short);
  185. short  FAR  PASCAL MinPQ(HANDLE);
  186. short  FAR  PASCAL ExtractPQ(HANDLE);
  187. short  FAR  PASCAL InsertPQ(HANDLE, short, short);
  188. short  FAR  PASCAL SizePQ(HANDLE, short);
  189. void   FAR  PASCAL DeletePQ(HANDLE);
  190.  
  191. /*  _SPOOL export routines */
  192.  
  193. HANDLE FAR  PASCAL OpenJob(LPSTR, LPSTR, HANDLE);
  194. short FAR  PASCAL StartSpoolPage(HANDLE);
  195. short FAR  PASCAL EndSpoolPage(HANDLE);
  196. short FAR  PASCAL WriteSpool(HANDLE, LPSTR, short);
  197. short FAR  PASCAL CloseJob(HANDLE);
  198. short FAR  PASCAL DeleteJob(HANDLE, short);
  199. short FAR  PASCAL WriteDialog(HANDLE, LPSTR, short);
  200. short FAR  PASCAL WriteMark(HANDLE, LPSTR, short);
  201. BOOL  FAR  PASCAL AddFileSpoolJob(LPSTR, LPSTR, BOOL, LPSTR);
  202. BOOL  FAR  PASCAL SpoolEscape(HANDLE, short, short, LPSTR, LPSTR);
  203.  
  204.  
  205. long  FAR  PASCAL QueryJob(HANDLE, short);
  206. short FAR  PASCAL QueryAbort(HANDLE, short);
  207.  
  208. /* _SPOOL constants for queryjob */
  209. #define SP_QUERYVALIDJOB    30
  210. #define SP_QUERYDISKAVAIL   0x1004
  211.  
  212. #define USA_COUNTRYCODE 1
  213.  
  214. /* new Escape support */
  215. #define  GETEXTENDEDTEXTMETRICS  256
  216. #define  GETEXTENTTABLE  257
  217. #define  EXTTEXTOUT      512
  218.